const publicMethod = {
  a: '第二',
  bb: function () { //写箭头函数  this指向会有问题
    console.log(this.a)
  },
  /**
     * 文件下载
     * @param content|string 文件路径或内容
     * @param fileName|string 文件名称.格式
     */
  download: function (content, fileName) {
    // 创建隐藏的可下载链接
    var eleLink = document.createElement('a');
    eleLink.download = fileName;
    eleLink.style.display = 'none';
    // 字符内容转变成blob地址
    // var blob = new Blob([content]);
    // eleLink.href = URL.createObjectURL(blob);
    eleLink.href = content;
    // 触发点击
    document.body.appendChild(eleLink);
    eleLink.click();
    // 然后移除
    document.body.removeChild(eleLink);
  },
  // local session cookie存取值
  storage: {
    /**
     * local session保存
     * @param string type 类型 local->本地存储 session->session存储
     * @param string key 存储的key值
     * @param object|string|number val 存储的value值 
     */
    save: function (type, key, val) {
      val = encodeURIComponent(JSON.stringify(val));
      switch (type) {
        case 'local':
          localStorage.setItem(key, val);
          break;
        case 'session':
          sessionStorage.setItem(key, val);
          break;
        default:
          alert('参数错误');
          break;
      }
    },
    /**
     * local session取值
     * @param string type 类型 local->本地存储 session->session存储
     * @param string key 存储的key值
     */
    get: function (type, key) {
      var val = null;
      switch (type) {
        case 'local':
          val = localStorage.getItem(key);
          break;
        case 'session':
          val = sessionStorage.getItem(key);
          break;
        default:
          alert('参数错误');
          break;
      }
      if (val != null && val != "undefined") {
        return JSON.parse(decodeURIComponent(val));
      } else {
        return null;
      }
    },
    /**
     * local session删除
     * @param string type 类型 local->本地存储 session->session存储
     * @param string key 存储的key值
     */
    del: function (type, key) {
      switch (type) {
        case 'local':
          localStorage.removeItem(key);
          break;
        case 'session':
          sessionStorage.removeItem(key);
          break;
        default:
          alert('参数错误');
          break;
      }
    },
    /**
     * local session清除所有存储的值
     * @param string type 类型 local->本地存储 session->session存储 all->两种都清除
     */
    clear: function (type) {
      switch (type) {
        case 'local':
          localStorage.clear();
          break;
        case 'session':
          sessionStorage.clear();
          break;
        case 'all':
          localStorage.clear();
          sessionStorage.clear();
          break;
        default:
          alert('参数错误');
          break;
      }
    },

    /**
     * cookie保存
     * @param string cname 类型 cookie->本地存储
     * @param string cvalue 存储的key值
     * @param number exdays 存储的时间/天 
     */
    setCookie: function (cname, cvalue, exdays) {
      var d = new Date();
      d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); //天
      var expires = "expires=" + d.toGMTString(); //path=/jyShop 是path 路径 设置时一定要设置路径----坑
      var cvalueString = JSON.stringify(cvalue)
      var encodeURIC = escape("" + cvalueString + ""); //解决编码格式   unescape()解码
      document.cookie = cname + "=" + encodeURIC + "; " + expires;
    },

    /**
     * cookie取值
     * @param string cname 类型 cookie->本地存储
     */
    getCookie: function (cname) {
      var name = cname + "=";
      var ca = document.cookie.split(';');
      for (var i = 0; i < ca.length; i++) {
        var c = ca[i].trim();
        if (c.indexOf(name) === 0) {
          var ctn = unescape(c.substring(name.length, c.length))
          return JSON.parse(ctn)
        };
      }
      return "";
    },

    /**
     * cookie删除
     * @param string cname 类型 cookie->本地存储
     */
    delCookie: function (cname) {
      this.setCookie(cname, "", -1);
    }

  }

}
export default publicMethod